package com.briup.es.mapper;

import com.briup.es.domain.bean.Book;
import com.briup.es.domain.vo.BookDetailVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface BookMapper {
    /**
     * 查询所有的图书信息
     * @return List<Book>
     */
    List<Book> queryAll();

    /**
     * 根据栏目id或关键字查询 图书信息
     * @param categoryId 栏目id
     * @param query 查询的关键字
     * @return 图书信息
     */
    List<Book> searchBookByConditional(@Param("categoryId") Integer categoryId,
                                       @Param("query") String query);

    /**
     * 根据id查询图书的详细信息，需要包含当前用户是否收藏该商品的标识
     * @param bookId 图书id
     * @param userId 用户id
     * @return BookDetailVO 图书详细信息
     */
    BookDetailVO queryById(@Param("bookId") Integer bookId, @Param("userId") Integer userId);

    /**
     * 根据id查询商品信息
     * @param bookId 图书商品id
     * @return 图书的基础信息
     */
    Book queryById2(Integer bookId);

    /**
     * 根据传入的图书商品id以及其库存数，修改图书商品的库存
     * @param id 图书商品id
     * @param storeNum 图书商品库存数
     */
    void updateBookStoreNum(@Param("id") Integer id, @Param("storeNum") Integer storeNum);
}
